import {IProcedureManager} from "../AzraelFrameWork/src/Procedure/IProcedureManager";
import {IFsm} from "../AzraelFrameWork/src/Fsm/IFsm";
import {ProcedureBase} from "../AzraelFrameWork/src/Procedure/ProcedureBase";

namespace test{
    import ccclass = cc._decorator.ccclass;
    type ProcedureOwner = IFsm<IProcedureManager>;
    @ccclass("TestState")
    export class TestState extends ProcedureBase{
        OnInit(fsm: ProcedureOwner): void {
            super.OnInit(fsm);
        }

        OnEnter(fsm: ProcedureOwner): void {
            super.OnEnter(fsm);
            cc.log(this.name + "inter")
        }

        OnUpdate(fsm: ProcedureOwner, elapseSeconds: number, realElapseSeconds: number): void {
            super.OnUpdate(fsm, elapseSeconds, realElapseSeconds);
        }

        OnLeave(fsm: ProcedureOwner, isShutdown: boolean): void {
            super.OnLeave(fsm, isShutdown);
        }

        OnDestroy(fsm: ProcedureOwner): void {
            super.OnDestroy(fsm);
        }
    }
}
